【VBA】FileSystemObjectでファイルパスをパーツごとに分割する方法

您所在的位置:网站首页 vba FileSystemObject 方法 【VBA】FileSystemObjectでファイルパスをパーツごとに分割する方法

【VBA】FileSystemObjectでファイルパスをパーツごとに分割する方法

2024-07-09 18:01| 来源: 网络整理| 查看: 265

TOPページ ▶ プログラミング ▶ VBA ▶ 

ファイル操作

【VBA】FileSystemObjectでファイルパスをパーツごとに分割する方法

更新日:2024/01/18

VBAでファイルのパスからファイル名や親パスを取得する場合、FileSystemObjectオブジェクトを使用すると簡単に取得できます。

このページの目次1ファイルパスを分割するメソッド2ドライブ名取得:GetDriveName3親フォルダ取得:GetParentFolderName4ファイル/フォルダ名取得:GetFileName5拡張子取得:GetExtensionName6ファイル/フォルダ名(拡張子無し)取得:GetBaseName

 

ファイルパスを分割するメソッド

FileSystemObjectオブジェクトはファイルパスを分割するメソッドとして、次の5つが用意されています。

メソッド名内容GetDriveNameドライブ名取得GetParentFolderName親フォルダ取得GetFileNameファイル名取得GetExtensionName拡張子取得GetBaseNameベース名(拡張子を除いたファイル名)取得

これらのメソッドは、実際にファイルやフォルダが存在するかどうかを考慮しません。 単純に文字列処理を行うだけです。

それぞれの構文と、使用例を紹介します。

 

ドライブ名取得:GetDriveName

ファイルパスからドライブ名を取得するときは、GetDriveNameメソッドを使用します。

FileSystemObjectオブジェクト.GetDriveName( Path ) Path:ドライブ名を取得したいファイルパスドライブ文字

パスにドライブ文字が含まれていない場合、空文字が返ります。

次のコードは、GetDriveNameの使用例です。

Function GetDriveName(filePath) As String GetDriveName = CreateObject("Scripting.FileSystemObject") _ .GetDriveName(filePath) End Function ' テスト用 Sub GetDriveNameTest() Debug.Print "【ドライブ名】" & GetDriveName("C:\Users\xxx\Documents\image.png") Debug.Print "【ドライブ名】" & GetDriveName("\Users\xxx\Documents\image.png") End Sub

GetDriveNameTestを実行すると、イミディエイトウィンドウに次のような結果が表示されます。

【ドライブ名】C: 【ドライブ名】

 

親フォルダ取得:GetParentFolderName

ファイルパスから親フォルダのパスを取得するときは、GetParentFolderNameメソッドを使用します。

FileSystemObjectオブジェクト.GetParentFolderName( Path ) Path:ドライブ名を取得したいファイルパス親フォルダのパス

パスにドライブ文字が含まれている場合、ドライブ文字を含んだ文字列を返します。 親フォルダが存在しない場合、ドライブ文字があるなしに関係なく、空文字を返します。

次のコードは、GetDriveNameの使用例です。

Function GetParentFolderName(filePath) As String GetParentFolderName = CreateObject("Scripting.FileSystemObject") _ .GetParentFolderName(filePath) End Function ' テスト用 Sub GetParentFolderNameTest() Debug.Print "【親フォルダ名】" & GetParentFolderName("C:\Users\xxx\Documents\image.png") Debug.Print "【親フォルダ名】" & GetParentFolderName("\Users\xxx\Documents\image.png") Debug.Print "【親フォルダ名】" & GetParentFolderName("C:\") End Sub

GetParentFolderNameTestを実行すると、イミディエイトウィンドウに次のような結果が表示されます。

【親フォルダ名】C:\Users\xxx\Documents 【親フォルダ名】\Users\xxx\Documents 【親フォルダ名】

 

ファイル/フォルダ名取得:GetFileName

ファイルパスからファイル名およびフォルダ名を取得するときはGetFileNameメソッドを使用します。

次のコードは、取得例です。

Function GetFileName(filePath) As String GetFileName = CreateObject("Scripting.FileSystemObject") _ .GetFileName(filePath) End Function ' テスト用 Sub GetFileNameTest() Debug.Print "【ファイル名】" & GetFileName("C:\Users\xxx\Documents\image.png") Debug.Print "【ファイル名】" & GetFileName("C:\Users\xxx\Documents\folder") Debug.Print "【ファイル名】" & GetFileName("image.png") Debug.Print "【ファイル名】" & GetFileName("c:\") End Sub

GetFileNameTestを実行すると、イミディエイトウィンドウに次のような結果が表示されます。

【ファイル名】image.png 【ファイル名】folder 【ファイル名】image.png 【ファイル名】

 

拡張子取得:GetExtensionName

ファイルパスから拡張子を取得するときは、GetExtensionName メソッドを使用します。

FileSystemObjectオブジェクト.GetExtensionName( Path ) Path:拡張子を取得したいファイルパス拡張子

パスに拡張子が含まれていない場合、空文字を返します。

次のコードは、GetExtensionNameの使用例です。

Function GetExtensionName(filePath) As String GetExtensionName = CreateObject("Scripting.FileSystemObject") _ .GetExtensionName(filePath) End Function ' テスト用 Sub GetExtensionNameTest() Debug.Print "【拡張子】" & GetExtensionName("C:\Users\xxx\Documents\image.png") Debug.Print "【拡張子】" & GetExtensionName("C:\Users\xxx\Documents\folder") Debug.Print "【拡張子】" & GetExtensionName("image.png") End Sub

GetExtensionNameTestを実行すると、イミディエイトウィンドウに次のような結果が表示されます。

【拡張子】png 【拡張子】 【拡張子】png

 

ファイル/フォルダ名(拡張子無し)取得:GetBaseName

ファイルパスから拡張子を含まないファイル名およびフォルダ名(ベース名)を取得するときは、GetBaseNameメソッドを使用します。

FileSystemObjectオブジェクト.GetBaseName( Path ) Path:ファイル名またはフォルダ名を取得したいファイルパス拡張子を除いたファイル名またはフォルダ名

パスが区切り文字(\)で終わる場合、最後の区切り文字は無視されます。

次のコードは、GetBaseNameの使用例です。

Function GetBaseName(filePath) As String GetBaseName = CreateObject("Scripting.FileSystemObject") _ .GetBaseName(filePath) End Function ' テスト用 Sub GetBaseNameTest() Debug.Print "【ベース名】" & GetBaseName("C:\Users\xxx\Documents\image.png") Debug.Print "【ベース名】" & GetBaseName("C:\Users\xxx\Documents\folder") Debug.Print "【ベース名】" & GetBaseName("image.png") Debug.Print "【ベース名】" & GetBaseName("c:\") End Sub

GetBaseNameTestを実行すると、イミディエイトウィンドウに次のような結果が表示されます。

【ベース名】image 【ベース名】folder 【ベース名】image 【ベース名】

更新日:2024/01/18

書いた人(管理人):けーちゃん

TOPページ ▶ プログラミング ▶ VBA ▶ 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3